package com.weijian.dto.data;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.weijian.dal.enums.DataType;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 图表列元数据
 * 描述查询结果中每一列的数据特征，用于图表类型推荐和渲染
 *
 * @author miaoma
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ChartColumn {

    /**
     * 列名（数据库字段名）
     */
    private String name;

    /**
     * 显示标签（友好化名称，用于图表展示）
     */
    private String label;

    /**
     * 数据类型
     */
    private DataType dataType;

    /**
     * 是否为数值型
     * 数值型列可用作图表的度量值（Y轴）
     */
    @JsonProperty("isNumeric")
    private boolean isNumeric;

    /**
     * 是否为类别型
     * 类别型列可用作图表的维度（X轴）
     */
    @JsonProperty("isCategory")
    private boolean isCategory;

    /**
     * 是否为时间序列
     * 时间序列列建议使用折线图展示趋势
     */
    @JsonProperty("isTimeSeries")
    private boolean isTimeSeries;
}
